<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* @framework : Codeigniter Framework
*
* @author: fatangel26
*
*/
	class Cms extends Admin_Controller
	{
		public function __construct()
		{
			parent::__construct();

            if(!$this->my_session->is_Admin())
            {
                redirect(base_url()."backend/auth/login");

                exit();
            }

            $this->load->helper('text');

            $this->load->model('backend/cms_model', 'MCms', TRUE);
		}

        /************************************CMS******************************************/
        public function index()
        {
            $this->_data['title'] = 'Quản trị nội dung';

            $data['cms'] = $this->MCms->select();

            if(!$data['cms'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị.';
            }

            $this->_data['content'] = $this->load->view("backend/cms/list", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function index

        public function editcms()
        {
            $this->_data['title'] = 'Jewel | Sửa nội dung';

            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $data['msg'] = 'Không tồn tại nội dung này';
            }
            else
            {

                $cms_id = $this->uri->segment(4);

                $data['cms'] = $this->MCms->select(array('id' => $cms_id));

                if(!$data['cms'])
                {
                    $data['msg'] = 'Không tồn tại nội dung này';
                }
                else
                {
                    /*Validate data*/
                    $this->form_validation->set_rules('content', 'Nội dung', 'required|trim|min_length[5]');
                    $this->form_validation->set_message('required', '<span style="font-weight:bold">%s<span> không được để trống.');
                    $this->form_validation->set_message('min_length', '<span style="font-weight:bold">%s<span> không được ít hơn 5 ký tự.');

                    if($this->form_validation->run() == FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {
                        $strUpdate = array(
                            'content'   => $this->input->post('content'),
                        );

                        $check = $this->MCms->edit($cms_id, $strUpdate);

                        if(!$check)
                            $this->native_session->set_flashdata('msg', 'Lỗi update.');
                        else
                            $this->native_session->set_flashdata('msg', 'Cập nhật thành công.');
                        redirect(base_url()."backend/cms");
                    }
                }//End else
            }//End else

            $this->_data['content'] = $this->load->view("backend/cms/editcms", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function editcms

        /************************************SUPPORT******************************************/
        public function support()
        {
            $this->_data['title'] = 'Jewel | Hỗ trợ trực tuyến.';

            $data['supports'] = $this->MCms->select_support();

            if(!$data['supports'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị.';
            }

            $this->_data['content'] = $this->load->view("backend/cms/listsupport", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function support

        public function delsupport()
        {

            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $data['msg'] = 'Không tồn tại mã người hỗ trợ này.';
            }
            else
            {
                $support_id = $this->uri->segment(4);

                $check = $this->MCms->delete_support(array('support_id' => $support_id));

                if(!$check)
                    $this->native_session->set_flashdata('msg', 'Lỗi xoá');
                else
                    $this->native_session->set_flashdata('msg', 'Xoá người dùng thành công');
            }//End else
            redirect(base_url()."backend/cms/support");
        }//End delsupport

        public function editsupport()
        {
            $this->_data['title'] = 'Jewel | Sửa ';

            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                $data['msg'] = 'Không tồn tại mã người hỗ trợ này';
            }
            else
            {
                $support_id = $this->uri->segment(4);

                $data['support'] = $this->MCms->select_support(array('support_id' => $support_id));

                if(!$data['support'])
                {
                    $data['support_id'] = 'Không tồn tại mã người hỗ trợ này';
                }
                else
                {

                    /*Validate data*/
                    $this->form_validation->set_rules('support_name','Tên', 'trim|required|min_length[2]|xss_clean');
                    $this->form_validation->set_rules('support_yh','Yahoo', 'trim|required|min_length[2]|xss_clean');
                    $this->form_validation->set_rules('support_facebook', 'Facebook', 'trim|required|xss_clean');
                    $this->form_validation->set_rules('support_mail', 'Mail', 'trim|required|xss_clean');
                    $this->form_validation->set_rules('support_fone', 'Điện thoại', 'trim|required|numeric|greater_than[-1]|xss_clean');
                    $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
                    $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
                    $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
                    $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');

                    if($this->form_validation->run()==FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {
                        $strUpdate = array(
                            'support_name'    =>  $this->input->post('support_name', TRUE),
                            'support_yh'   =>  $this->input->post('support_yh', TRUE),
                            'support_facebook'  =>  $this->input->post('support_facebook', TRUE),
                            'support_mail'    =>  $this->input->post('support_mail', TRUE),
                            'support_fone'   =>  $this->input->post('support_fone', TRUE),
                            'support_status'    =>  $this->input->post('support_status', TRUE),
                        );

                        $check = $this->MCms->edit_support($support_id, $strUpdate);

                        if(!$check)
                        {
                            $data['msg'] = 'Lỗi update';
                        }
                        else
                        {
                            $this->native_session->set_flashdata('msg', 'Cập nhật thành công');

                            redirect(base_url()."backend/cms/support");

                            exit();
                        }//End else
                    }//End else
                }//End else
            }//End else

            $this->_data['content'] = $this->load->view("backend/cms/editsupport", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function editsupport

        public function createsupport()
        {
            $this->_data['title'] = 'Jewel | Thêm mới';

            /*Validate data*/
            $this->form_validation->set_rules('support_name','Tên', 'trim|required|min_length[2]|xss_clean');
            $this->form_validation->set_rules('support_yh','Yahoo', 'trim|required|min_length[2]|xss_clean');
            $this->form_validation->set_rules('support_facebook', 'Facebook', 'trim|required|xss_clean');
            $this->form_validation->set_rules('support_mail', 'Mail', 'trim|required|xss_clean');
            $this->form_validation->set_rules('support_fone', 'Điện thoại', 'trim|required|numeric|greater_than[-1]|xss_clean');
            $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
            $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');
            $this->form_validation->set_message('greater_than','<span style="font-weight: bold">%s</span> phải lớn hơn 0');
            $this->form_validation->set_message('numeric','<span style="font-weight: bold">%s</span> chỉ bao gồm số');

            if($this->form_validation->run() == FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strInsert = array(
                    'support_name'    =>  $this->input->post('support_name', TRUE),
                    'support_yh'   =>  $this->input->post('support_yh', TRUE),
                    'support_facebook'  =>  $this->input->post('support_facebook', TRUE),
                    'support_mail'    =>  $this->input->post('support_mail', TRUE),
                    'support_fone'   =>  $this->input->post('support_fone', TRUE),
                    'support_status'    =>  $this->input->post('support_status', TRUE),
                );

                $check = $this->MCms->create_support($strInsert);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi khởi tạo.';
                }
                else
                {
                    $this->native_session->set_flashdata('msg', 'Thêm mới thành công');

                    redirect(base_url()."backend/cms/support");

                    exit();
                }
            }

            $this->_data['content'] = $this->load->view("backend/cms/createsupport", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);

        }//End function createsupport

        /************************************LINK******************************************/
        public function link()
        {
            $this->_data['title'] = 'Jewel | Danh sách liên kết ngoài';

            $data['links'] = $this->MCms->select_link();

            if(!$data['links'])
            {
                $data['msg'] = 'Không có dữ liệu để hiển thị.';
            }

            $this->_data['content'] = $this->load->view("backend/cms/listlink", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function link

        public function dellink()
        {
            if(!$this->uri->segment(4) || $this->uri->segment(4) == '')
            {
                $data['msg'] = 'Không tồn tại mã liên kết này.';
            }
            else
            {
                $link_id = $this->uri->segment(4);

                $check = $this->MCms->delete_link(array('link_id' => $link_id));

                if(!$check)
                    $this->native_session->set_flashdata('msg', 'Lỗi xoá');
                else
                    $this->native_session->set_flashdata('msg', 'Xoá liên kết thành công');
            }//End else
            redirect(base_url()."backend/cms/link");
        }//End function dellink

        public function editlink()
        {
            $strUpdate = array();

            $this->_data['title'] = 'Jewel | Sửa liên kết';

            if(!$this->uri->segment(4) || $this->uri->segment(4)=='')
            {
                $data['msg'] = 'Không tồn tại mã liên kết này';
            }
            else
            {
                $link_id = $this->uri->segment(4);

                $data['link'] = $this->MCms->select_link(array('link_id' => $link_id));

                if(!$data['link'])
                {
                    $data['link'] = 'Không tồn tại mã liên kết này';
                }
                else
                {
                    /*Validate data*/
                    $this->form_validation->set_rules('link_company','Tên hãng', 'trim|required|min_length[2]|xss_clean');
                    $this->form_validation->set_rules('link','Đường dẫn', 'trim|required|xss_clean');
                    $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
                    $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');

                    if($this->form_validation->run()==FALSE)
                    {
                        $data['msg'] = '';
                    }
                    else
                    {

                        $strUpdate = array(
                            'link_company'    =>  $this->input->post('link_company', TRUE),
                            'link'   =>  $this->input->post('link', TRUE),
                            'link_open'  =>  $this->input->post('link_open', TRUE),
                            'link_status'    =>  $this->input->post('link_status', TRUE),
                        );

                        /*Process Image*/
                        $config = array(
                            'upload_path' => 'assets/uploads/images/link/',
                            'allowed_types' => 'jpeg|jpg|png|gif',
                            'max_size' => '2000'
                        );

                        $this->load->library('upload', $config);

                        if(!$this->upload->do_upload('link_image'))
                        {
                            $data['msg'] = $this->upload->display_errors();
                        }
                        else
                        {
                            //Resize image
                            $image_data = $this->upload->data();

                            $config = array(
                                'source_image'  => $image_data['full_path'],
                                'new_image'     => 'assets/uploads/images/link/thumbs/',
                                'width'         => '107',
                                'height'        => '63'
                            );

                            $this->load->library('image_lib',$config);

                            if(!$this->image_lib->resize())
                            {
                                $data['msg'] = $this->image_lib->display_errors();
                            }
                            else
                            {
                                $strUpdate['link_image'] = 'assets/uploads/images/link/'.$image_data['file_name'];
                                $strUpdate['link_image_thumb'] = 'assets/uploads/images/link/thumbs/'.$image_data['file_name'];
                            }
                        }//End else

                        $check = $this->MCms->edit_link($link_id, $strUpdate);

                        if(!$check)
                        {
                            $data['msg'] = 'Lỗi update';
                        }
                        else
                        {
                            /*Xoá ảnh cũ*/
                            if(is_file($data['link']->link_image))
                                @unlink($data['link']->link_image);
                            if(is_file($data['link']->link_thumb_image))
                                @unlink($data['link']->link_thumb_image);

                            $this->native_session->set_flashdata('msg', 'Cập nhật thành công');

                            redirect(base_url()."backend/cms/link");

                            exit();
                        }///End else
                    }//End else
                }//End else
            }//End else

            $this->_data['content'] = $this->load->view("backend/cms/editlink", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End function editlink

        public function createlink()
        {
            $this->_data['title'] = 'Jewel | Thêm mới liên kết';

            /*Validate data*/
            $this->form_validation->set_rules('link_company','Tên hãng', 'trim|required|min_length[2]|xss_clean');
            $this->form_validation->set_rules('link','Đường dẫn', 'trim|required|xss_clean');
            $this->form_validation->set_rules('link_image', 'Crop ảnh','trim|required|xss_clean');
            $this->form_validation->set_rules('path_img_link', 'Đường dẫn ảnh','trim|required|xss_clean');
            $this->form_validation->set_message('required','<span style="font-weight: bold">%s</span> không được để trống');
            $this->form_validation->set_message('min_length','<span style="font-weight: bold">%s</span> không được ít hơn 2 ký tự');

            if($this->form_validation->run() == FALSE)
            {
                $data['msg'] = '';
            }
            else
            {
                $strInsert = array(
                    'link_company'    =>  $this->input->post('link_company', TRUE),
                    'link'   =>  $this->input->post('link', TRUE),
                    'link_open'  =>  $this->input->post('link_open', TRUE),
                    'link_status'    =>  $this->input->post('link_status', TRUE),
                    'link_image_thumb'    => $this->input->post('link_image', TRUE),
                    'link_image'    => $this->input->post('path_img_link', TRUE)
                );

                $check = $this->MCms->create_link($strInsert);

                if(!$check)
                {
                    $data['msg'] = 'Lỗi khởi tạo.';
                }
                else
                {
                    $this->native_session->set_flashdata('msg', 'Thêm liên kết mới thành công');

                    redirect(base_url()."backend/cms/link");

                    exit();
                }
            }//End else

            $this->_data['content'] = $this->load->view("backend/cms/createlink", $data, TRUE);

            $this->load->view("backend/layout", $this->_data);
        }//End fucntion createlink

        public function uploadify()
        {
            $this->load->helper('uploadify');

    		$img_data = img_uploadify();

    		$size = getimagesize($img_data['full_path']);

            if($size[0] < 100 || $size[1] < 50)
            {
                @unlink($img_data['full_path']);
                echo 1;
            }
            else
            {
                $img_data = array(
                    'file_name' => $img_data['file_name'],
                    'width'     => $size[0],
                    'height'    => $size[1],
                    'fullpath'  => $img_data['full_path']
                );

                echo json_encode($img_data);
            }
        }//End function uploadify

        public function processimg()
        {
            /*Load jCrop helper*/
            $this->load->helper('jcrop');

            $thumb_image = jcrop();

            $img_parts = pathinfo($thumb_image);

            $img_data = array(
                'img_name'  => $img_parts['basename']
            );

            echo  json_encode($img_data);
        }//End processimg

        public function rejectimg()
        {
             if(is_file($this->input->post('filepath')))
                @unlink($this->input->post('filepath'));
        }//End rejectimg

	}

/* End of file Cms.php */
/* Location: ./controllers/backend/cms.php */